iT邦幫忙

2024 iThome 鐵人賽

DAY 22
0
DevOps

從零開始的DevOps猴!系列 第 22

Day22-Kubernetes(k8s)是什麼?

  • 分享至 

  • xImage
  •  

Day22-Kubernetes(k8s)是什麼?

基於原雲生的大平台

昨天稍微了解原雲生是甚麼抽象的概念,今天來了解基於雲原生概念所實作出來的雲原生架構大平台Kubernetes(k8s)

什麼是Kubernetes (k8s)?

Kubernetes,通常縮寫為k8s,是一個開源的容器編排平台。它用於自動化容器化應用的部署、擴展和管理。Kubernetes最初由Google開發,現在由Cloud Native Computing Foundation (CNCF) 維護。

主要技術原理

  1. 容器編排:k8s管理容器的生命週期,確保應用的實際狀態符合期望狀態。

  2. 集群架構:k8s使用主從架構,包括控制平面(master)和工作節點(worker nodes)。

  3. 聲明式API:使用YAML或JSON文件描述所需的系統狀態。

  4. 自動調度:根據資源需求和約束條件,自動將容器分配到適當的節點。

  5. 服務發現和負載均衡:為容器提供網絡服務和負載均衡。

  6. 自動擴縮容:根據CPU使用率或其他指標自動調整容器數量。

  7. 存儲編排:管理持久化存儲。

  8. 自我修復:自動重啟失敗的容器,替換或重新調度不響應的節點。

這個圖表展示了Kubernetes的基本架構,包括控制平面和工作節點的主要組件。
k8s基本架構

Kubernetes vs Docker vs VM

1. 相對於Docker

優點:

  • 提供更高級別的抽象,管理整個容器集群
  • 自動化部署、擴展和負載均衡
  • 提供自我修復機制
  • 更適合大規模部署和複雜應用

缺點:

  • 比單純使用Docker更複雜,學習曲線陡峭
  • 對於小型項目可能過於複雜

2. 相對於VM(虛擬機)

優點:

  • 資源利用率更高,啟動更快
  • 更輕量級,可以在同一硬件上運行更多應用
  • 提供更好的可移植性和一致性
  • 更容易實現微服務架構

缺點:

  • 隔離性稍差(儘管近年來有很大改進)
  • 某些特定場景(如需要不同操作系統)仍然更適合VM

總結:

Kubernetes在容器化應用的大規模部署和管理方面表現出色。它結合了容器的輕量級和虛擬機的許多管理特性,為雲原生應用提供了強大的平台。然而,它的複雜性意味著對於簡單的應用場景,可能會顯得過於繁重。

小結

單位本來就使用k8s提供服務,對於k8s不至於太陌生,但實際底層實作都是由IR、DevOps在協助,接下來將自己試試利用Docker架設k8s學習它的一些功能。


上一篇
Day21-雲原生(Cloud Native)是甚麼?
下一篇
Day23-使用Minikube模擬Kubernetes(k8s)
系列文
從零開始的DevOps猴!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言